home *** CD-ROM | disk | FTP | other *** search
/ New Star Software Collection / NSS_Collection.iso / 3-069 qemm 603 / 1.ima / QMANFEST / CH7.MAN < prev    next >
Encoding:
Text File  |  1991-10-07  |  10.6 KB  |  236 lines

  1. Chapter 7
  2.  
  3. Extended Memory
  4.  
  5. This chapter gives you information about the extended memory in
  6. your PC and the memory manager supporting this memory. 
  7.  
  8. The original Intel processors, the 8086/8088, are capable of
  9. addressing one megabyte, over one million bytes, of memory. The
  10. memory management facilities in DOS, as described in Chapter 5,
  11. First Meg, assumed this limitation, as do most of the programs
  12. with which you are familiar. In 1984, the first personal
  13. computers with Intel's 80286 processor were produced. The 80286
  14. is capable of addressing 16 megabytes of memory. 1986 saw the
  15. introduction of Intel's 80386 processor with an addressable space
  16. of 4 gigabytes, over 4 billion bytes of memory. All the memory
  17. installed on an 80286 or 80386 PC, except for the first megabyte,
  18. is referred to as extended memory.
  19.  
  20. From the viewpoint of DOS and DOS programs, this extended memory,
  21. however much you have installed, is essentially non-existent.
  22. With minimal support from the BIOS ROM, utility programs, (in the
  23. form of RAM disks, print spoolers and disk caches), give you some
  24. benefit from this memory. But DOS did not change to support
  25. extended memory; instead OS/2 was created to support 80286
  26. extended memory.
  27.  
  28. The architecture of both the 80286 and 80386 processor is
  29. radically different from the earlier processors. Compatibility
  30. throughout the family is maintained by the use of modes in which
  31. the newer processor's capabilities are hidden. The mode common to
  32. the entire family is known as real mode. In real mode, all
  33. processors behave the same with respect to the amount of memory
  34. they can address, i.e. the first megabyte. The 80286 and 80386
  35. both support a protected mode in which they can address the
  36. additional memory their designs support. Additionally, the 80386
  37. has a third mode, known as virtual 8086 mode, which is like real
  38. mode, but has some of the characteristics of protected mode,
  39. particularly memory mapping. Until recently, all the programs you
  40. ran or were likely to run, executed in real mode and were limited
  41. to running in and addressing memory in the first megabyte only.
  42.  
  43. The presence of extended memory, coupled with the lack of DOS
  44. operating system suppport for it, has led to a number of
  45. innovative solutions by several companies to make better use of
  46. your PC's extended memory.
  47.  
  48. ~Subhead~ Extended Memory Managers
  49.  
  50.  In 1987 Quarterdeck, in its search for ways to minimize the DOS
  51. overhead required to run its multitasking environment, DESQview,
  52. discovered a way to utilize 64K of extended memory as if it were
  53. conventional memory. This freed up memory which could then be
  54. devoted to applications running in DESQview. DESQview utilizes
  55. the 64K through its extended memory manager QEXT.SYS.
  56.  
  57.  In 1988 Microsoft formally recognized this technique in what is
  58. now known as the Extended Memory Specification (XMS). Microsoft
  59. Windows makes use of this technique in its extended memory
  60. manager, HIMEM.SYS. 
  61.  
  62. ~Subhead~ DOS Extenders
  63.  
  64.  Also in 1987 Phar Lap Software, Rational Systems, AI Architects
  65. and Oracle each developed a way in which DOS-based application
  66. programs could be larger than 640K. The innovation is called a
  67. DOS Extender, a creative solution which gives application
  68. programs access to a large memory address space and allows them
  69. to run in protected mode without the consent, knowledge or
  70. interference of DOS. A DOS Extender is built into the target
  71. application, and therefore, programs must be written to
  72. specifically make use of their services. You will find this
  73. technique used in Paradox 386, Oracle Professional, IBM
  74. Interleaf, and 1-2-3 Release 3 to name a few programs.
  75.  
  76. In late 1987 Quarterdeck, recognizing the achievement of the DOS
  77. Extender concept, and its importance and relevance in breaking
  78. through the DOS 640K barrier, joined with Phar Lap in outlining a
  79. specification for a cooperative interface which would ensure
  80. compatibility among DOS Extenders, memory managers and DOS
  81. operating environments. The result of this effort was the Virtual
  82. Control Program Interface (VCPI) specification, which specifies
  83. how DOS Extenders, memory managers and operating environments
  84. communicate. Any memory manager or control program that follows
  85. the VCPI specification allows you, the user, to serially and/or
  86. concurrently make the best use of extended memory or expanded
  87. memory, in the manner expected by the applications you are
  88. running.
  89.  
  90. No longer the white elephant it once was, extended memory is now
  91. being made available to the end user by programs specifically
  92. written to make use of it (through DOS Extenders) as well as
  93. transparently to existing DOS programs by transforming extended
  94. memory into the more generally useful expanded memory (through
  95. QEMM).
  96.  
  97. ~Subhead~ Extended Overview (TO)
  98.  
  99.  Extended Overview shows you a map of your PC's extended memory
  100. and how it is being used. This screen appears only if your PC has
  101. extended memory installed and functioning at the time you run
  102. Manifest.
  103.  
  104.  For each area of extended memory that is used or available, the
  105. map reports the area's beginning and ending addresses, and its
  106. size. 
  107.  
  108.  Some programs allocate extended memory from the lowest to the
  109. highest address first, beginning at 1024K. The map indicates this
  110. by indicating Used from the Bottom in its status column. Examples
  111. of programs that do this are PC-DOS 3.XX's, VDISK, and
  112. Quarterdeck's QEXT.
  113.  
  114.  Other programs allocate extended memory from the top of extended
  115. memory downward. When these programs are present, the map
  116. indicates their status as Used from the Top. Quarterdeck's QEMM
  117. and DOS Extenders allocate memory from the top.
  118.  
  119.  Remaining, unallocated memory is called Available.
  120.  
  121. ~Subhead~ Please Note
  122.  
  123.  Hard to Detect Extended Memory Usage: Some programs manage and
  124. utilize extended memory in ways that cannot be detected by
  125. Manifest (FASTDISK.SYS from AST is one). If Manifest cannot
  126. detect such usage, it is likely that other programs will also
  127. fail to detect such extended memory usage. Typically, the only
  128. remedy is to avoid using such a program in conjunction with other
  129. extended memory programs.
  130.  
  131. ~Subhead~ Extended XMS (TM)
  132.  
  133.  Extended XMS shows information about the XMS driver which is
  134. loaded at system power up (if it is specified in your CONFIG.SYS
  135. file). 
  136.  
  137.  The Extended XMS screen is available only if you have extended
  138. memory, and an XMS driver is installed.
  139.  
  140.  XMS is an acronym standing for Extended Memory Specification
  141. proposed by Microsoft Corporation. An XMS driver is an extended
  142. memory manager which implements XMS. HIMEM.SYS is Microsoft's
  143. implementation
  144.  
  145.  Quarterdeck's QEXT, version 2.26, supports XMS. Earlier versions
  146. of QEXT which predated the XMS specification, provide similar
  147. functionality for DESQview. QEMM-386 Version 5.0 fully supports
  148. both QEXT and XMS as subsets of its overall memory management
  149. capabilities.
  150.  
  151. ~Subhead~ XMS Explained
  152.  
  153.  XMS defines three areas of memory covered by the spec-ification.
  154. Individual XMS drivers may, or may not support all three. These
  155. are: HMA~dash~high memory area, UMB-upper memory blocks, &
  156. EMB~dash~extended memory blocks.
  157.  
  158.  HMA is a 64K block of memory starting at the one megabyte
  159. boundary (1024K), the beginning of extended memory. Its primary
  160. and most beneficial use is in enabling program code, nominally
  161. restricted to the conventional memory area, to be loaded and
  162. executed in HMA, thus adding 64K to the addressable DOS memory
  163. space.
  164.  
  165.  UMB refers to extended memory mapped into unused areas above
  166. 640K and below the one megabyte boundaries. Like HMA, available
  167. UMB memory increases effective DOS memory when used with QEMM or
  168. QRAM.
  169.  
  170.  EMB refers to the remaining extended memory available for
  171. allocation as extended memory. 
  172.  
  173. ~Subhead~ Key Terms
  174.  
  175.  Manifest's Extended XMS screen has a few fields that may not be
  176. familar to you. These are defined as follows:
  177.  
  178. ~Item~ XMS Version: the version of the Extended Memory
  179. Specification supported by your XMS driver. 
  180.  
  181. ~Item~ Driver Revision: the revision number of the XMS driver.
  182.  
  183. ~Item~ High Memory Area Allocated: indicates if the High Memory
  184. Area (HMA) is being used, or has been allocated. Only one program
  185. at a time can use the HMA. Consequently, the first program to
  186. access the HMA will be the program which gets to use it.
  187.  
  188. ~Item~ A20 Enabled: A20 is a hardware address line which can be
  189. enabled or disabled under program control. The A20 line is
  190. important in the management of extended memory and the HMA.
  191. Programs usually enable the A20 line when using extended memory
  192. and the HMA and disable it otherwise.
  193.  
  194. ~Item~ Handles Available: Each extended memory block (EMB) that
  195. gets allocated gets a handle associated with it. Thus, there must
  196. be an XMS handle available to honor a request for an EMB. Handles
  197. Available shows you the number of unused handles. With QEMM-386
  198. providing XMS support, XMS and expanded memory handles are
  199. essentially equivalent and are flexibly assigned as needed for
  200. either type of memory allocated. 
  201.  
  202.  NOTE: HMA, although called the "high memory area" in the XMS
  203. specification, does not carry the same meaning as the term high
  204. memory used elsewhere thoughout this manual. Elsewhere the phrase
  205. high memory refers to the memory in the first megabyte above
  206. 640K.
  207.  
  208. ~Subhead~ Technical Hints
  209.  
  210.  XMS & QEMM-386: If you are using QEMM-386 Version 5, XMS support
  211. is provided, as well as the conversion of extended memory into
  212. expanded memory. In this case, the available memory shown on
  213. Manifest's Expanded Memory screen is essentially the equivalent
  214. to the available memory shown on Manifest's Extended Memory
  215. screen. 
  216.  
  217.  Programs Which Request All of Extended Memory: Certain programs
  218. using extended memory will request and be allocated all available
  219. EMBs. This will also exhaust expanded memory, since they are
  220. allocated from the same pool of available memory. If you have
  221. applications which do this, and they prevent other programs or
  222. TSRs from obtaining the memory they need, you should check to see
  223. if that application provides some means of limiting the amount of
  224. memory it requests. In DESQview, this limiting capability is
  225. provided by a field in the program's PIF file.
  226.  
  227.  XMS & Windows: Microsoft Windows 286 Version 2 and some Windows
  228. dependent programs may use the HMA. All XMS memory is allocated
  229. on a first come, first serve basis. Since DESQview may allocate
  230. this memory also, loading a MS Windows program inside of a
  231. DESQview window may cause a warning diagnostic to be issued by
  232. Windows. This will not prevent the program from running. However,
  233. if you want to avoid this message, Windows use of this area is
  234. optional. See your Windows manual to determine how to change this
  235. configuration.
  236.